public class climbStairs {
    /**
     * 爬楼梯 --动态规划
     * 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
     * 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢？
     */
    public static int method(int n){
        if(n <=1){
            return n; //这里其实就是0,1状态下的方法
        }
        int[] dp =new int[n+1];
        dp[0]=1;
        dp[1]=1;
        for(int i=2;i<=n;i++){
            dp[i] = dp[i-2]+dp[i-1]; //开始递归
        }

        return dp[n]; //dp[n-1]是第n个台阶；
    }

    public static void main(String[] args) {
        int n=3;
        System.out.println(method(n));
    }
}
